From c9687ec616a2a4c969b1458a30d83b186e38e590 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Fri, 15 Dec 2006 17:30:51 +0000 Subject: [PATCH] Fix pointer encoding in vncfb (middle and right button were swapped). Signed-off-by: Markus Armbruster --- tools/xenfb/vncfb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/xenfb/vncfb.c b/tools/xenfb/vncfb.c index 49fc730625..7bb834ee2b 100644 --- a/tools/xenfb/vncfb.c +++ b/tools/xenfb/vncfb.c @@ -148,6 +148,10 @@ static int xk2linux[0x10000] = { [XK_plus] = KEY_EQUAL, }; +static int btnmap[] = { + BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, BTN_FORWARD, BTN_BACK +}; + static void on_kbd_event(rfbBool down, rfbKeySym keycode, rfbClientPtr cl) { /* @@ -184,8 +188,11 @@ static void on_ptr_event(int buttonMask, int x, int y, rfbClientPtr cl) down = buttonMask & (1 << i); if (down == last_down) continue; - /* FIXME this assumes buttons are numbered the same; verify they are */ - if (xenfb_send_key(xenfb, down != 0, BTN_MOUSE + i) < 0) + if (i >= sizeof(btnmap) / sizeof(*btnmap)) + break; + if (btnmap[i] == 0) + break; + if (xenfb_send_key(xenfb, down != 0, btnmap[i]) < 0) fprintf(stderr, "Button %d %s lost (%s)\n", i, down ? "down" : "up", strerror(errno)); } -- 2.30.2